[INFO] cloning repository https://github.com/arakitakashi/rust-ddd-demo
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/arakitakashi/rust-ddd-demo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farakitakashi%2Frust-ddd-demo", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farakitakashi%2Frust-ddd-demo'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 329b1eee017ef35a6c601391741f79832cf7b393
[INFO] fixing arakitakashi/rust-ddd-demo against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farakitakashi%2Frust-ddd-demo" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/arakitakashi/rust-ddd-demo
[INFO] finished tweaking git repo https://github.com/arakitakashi/rust-ddd-demo
[INFO] tweaked toml for git repo https://github.com/arakitakashi/rust-ddd-demo written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/arakitakashi/rust-ddd-demo on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/arakitakashi/rust-ddd-demo already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-macros v2.5.0
[INFO] [stderr]   Downloaded socket2 v0.6.0
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.6
[INFO] [stderr]   Downloaded windows-interface v0.59.1
[INFO] [stderr]   Downloaded windows-implement v0.60.0
[INFO] [stderr]   Downloaded time-core v0.1.6
[INFO] [stderr]   Downloaded iana-time-zone-haiku v0.1.2
[INFO] [stderr]   Downloaded stable_deref_trait v1.2.0
[INFO] [stderr]   Downloaded actix-macros v0.2.4
[INFO] [stderr]   Downloaded httpdate v1.0.3
[INFO] [stderr]   Downloaded time-macros v0.2.24
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.1
[INFO] [stderr]   Downloaded potential_utf v0.1.3
[INFO] [stderr]   Downloaded futures-sink v0.3.31
[INFO] [stderr]   Downloaded windows-link v0.2.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.103
[INFO] [stderr]   Downloaded bytestring v1.4.0
[INFO] [stderr]   Downloaded num-conv v0.1.0
[INFO] [stderr]   Downloaded impl-more v0.1.9
[INFO] [stderr]   Downloaded windows-strings v0.5.0
[INFO] [stderr]   Downloaded local-waker v0.1.4
[INFO] [stderr]   Downloaded serde v1.0.220
[INFO] [stderr]   Downloaded yoke v0.8.0
[INFO] [stderr]   Downloaded writeable v0.6.1
[INFO] [stderr]   Downloaded zerovec-derive v0.11.1
[INFO] [stderr]   Downloaded tinystr v0.8.1
[INFO] [stderr]   Downloaded deranged v0.5.3
[INFO] [stderr]   Downloaded mime v0.3.17
[INFO] [stderr]   Downloaded actix-web-codegen v4.3.0
[INFO] [stderr]   Downloaded actix-rt v2.11.0
[INFO] [stderr]   Downloaded redox_syscall v0.5.17
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.103
[INFO] [stderr]   Downloaded yoke-derive v0.8.0
[INFO] [stderr]   Downloaded unicode-xid v0.2.6
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.103
[INFO] [stderr]   Downloaded sha1 v0.10.6
[INFO] [stderr]   Downloaded windows-result v0.4.0
[INFO] [stderr]   Downloaded powerfmt v0.2.0
[INFO] [stderr]   Downloaded actix-service v2.0.3
[INFO] [stderr]   Downloaded actix-server v2.6.0
[INFO] [stderr]   Downloaded zstd v0.13.3
[INFO] [stderr]   Downloaded zstd-safe v7.2.4
[INFO] [stderr]   Downloaded local-channel v0.1.5
[INFO] [stderr]   Downloaded httparse v1.10.1
[INFO] [stderr]   Downloaded actix-codec v0.5.2
[INFO] [stderr]   Downloaded rustc-demangle v0.1.26
[INFO] [stderr]   Downloaded addr2line v0.24.2
[INFO] [stderr]   Downloaded futures-executor v0.3.31
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.103
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.103
[INFO] [stderr]   Downloaded windows-core v0.62.0
[INFO] [stderr]   Downloaded getrandom v0.3.3
[INFO] [stderr]   Downloaded wasi v0.14.5+wasi-0.2.4
[INFO] [stderr]   Downloaded icu_provider v2.0.0
[INFO] [stderr]   Downloaded litemap v0.8.0
[INFO] [stderr]   Downloaded tracing-attributes v0.1.30
[INFO] [stderr]   Downloaded actix-router v0.5.3
[INFO] [stderr]   Downloaded iana-time-zone v0.1.64
[INFO] [stderr]   Downloaded wit-bindgen v0.45.1
[INFO] [stderr]   Downloaded serde_core v1.0.220
[INFO] [stderr]   Downloaded tracing-core v0.1.34
[INFO] [stderr]   Downloaded socket2 v0.5.10
[INFO] [stderr]   Downloaded derive_more v2.0.1
[INFO] [stderr]   Downloaded futures v0.3.31
[INFO] [stderr]   Downloaded serde_derive v1.0.220
[INFO] [stderr]   Downloaded icu_properties v2.0.1
[INFO] [stderr]   Downloaded icu_normalizer v2.0.0
[INFO] [stderr]   Downloaded time v0.3.43
[INFO] [stderr]   Downloaded derive_more-impl v2.0.1
[INFO] [stderr]   Downloaded flate2 v1.1.2
[INFO] [stderr]   Downloaded js-sys v0.3.80
[INFO] [stderr]   Downloaded cc v1.2.37
[INFO] [stderr]   Downloaded zerotrie v0.2.2
[INFO] [stderr]   Downloaded icu_collections v2.0.0
[INFO] [stderr]   Downloaded tracing v0.1.41
[INFO] [stderr]   Downloaded regex-lite v0.1.7
[INFO] [stderr]   Downloaded bytes v1.10.1
[INFO] [stderr]   Downloaded icu_locale_core v2.0.0
[INFO] [stderr]   Downloaded icu_normalizer_data v2.0.0
[INFO] [stderr]   Downloaded indexmap v2.11.1
[INFO] [stderr]   Downloaded mio v1.0.4
[INFO] [stderr]   Downloaded io-uring v0.7.10
[INFO] [stderr]   Downloaded backtrace v0.3.75
[INFO] [stderr]   Downloaded zerovec v0.11.4
[INFO] [stderr]   Downloaded http v0.2.12
[INFO] [stderr]   Downloaded tokio-util v0.7.16
[INFO] [stderr]   Downloaded wasip2 v1.0.0+wasi-0.2.4
[INFO] [stderr]   Downloaded icu_properties_data v2.0.1
[INFO] [stderr]   Downloaded serde_json v1.0.143
[INFO] [stderr]   Downloaded regex v1.11.2
[INFO] [stderr]   Downloaded actix-http v3.11.1
[INFO] [stderr]   Downloaded h2 v0.3.27
[INFO] [stderr]   Downloaded brotli-decompressor v5.0.0
[INFO] [stderr]   Downloaded actix-web v4.11.0
[INFO] [stderr]   Downloaded gimli v0.31.1
[INFO] [stderr]   Downloaded chrono v0.4.42
[INFO] [stderr]   Downloaded object v0.36.7
[INFO] [stderr]   Downloaded libc v0.2.175
[INFO] [stderr]   Downloaded regex-automata v0.4.10
[INFO] [stderr]   Downloaded tokio v1.47.1
[INFO] [stderr]   Downloaded zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]   Downloaded encoding_rs v0.8.35
[INFO] [stderr]   Downloaded brotli v8.0.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9140b923ef80af5e846bb43fb54a144e0eb687e4c26264e9b0d2ade555484992
[INFO] running `Command { std: "docker" "start" "9140b923ef80af5e846bb43fb54a144e0eb687e4c26264e9b0d2ade555484992", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9140b923ef80af5e846bb43fb54a144e0eb687e4c26264e9b0d2ade555484992" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9140b923ef80af5e846bb43fb54a144e0eb687e4c26264e9b0d2ade555484992", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9140b923ef80af5e846bb43fb54a144e0eb687e4c26264e9b0d2ade555484992" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]     Checking cfg-if v1.0.3
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling serde_core v1.0.220
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling serde v1.0.220
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking local-waker v0.1.4
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling cc v1.2.37
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling bytestring v1.4.0
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking deranged v0.5.3
[INFO] [stderr]     Checking brotli-decompressor v5.0.0
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking actix-utils v3.0.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]     Checking actix-service v2.0.3
[INFO] [stderr]    Compiling regex-lite v0.1.7
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking indexmap v2.11.1
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking bitflags v2.9.4
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking local-channel v0.1.5
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking language-tags v0.3.2
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking impl-more v0.1.9
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking regex-automata v0.4.10
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]     Checking time v0.3.43
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking regex v1.11.2
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling serde_derive v1.0.220
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.3
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking actix-rt v2.11.0
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking actix-server v2.6.0
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking actix-http v3.11.1
[INFO] [stderr]     Checking actix-web v4.11.0
[INFO] [stderr]     Checking rust-ddd-demo v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0583]: file not found for module `dto`
[INFO] [stdout]  --> src/order_taking/domain/model/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod dto;
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `dto`, create file "src/order_taking/domain/model/dto.rs" or "src/order_taking/domain/model/dto/mod.rs"
[INFO] [stdout]   = note: if there is a `mod dto` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0583]: file not found for module `dto`
[INFO] [stdout]  --> src/order_taking/domain/model/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod dto;
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: to create the module `dto`, create file "src/order_taking/domain/model/dto.rs" or "src/order_taking/domain/model/dto/mod.rs"
[INFO] [stdout]   = note: if there is a `mod dto` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `acknowledgement` is defined multiple times
[INFO] [stdout]  --> src/order_taking/domain/model/mod.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod acknowledgement;
[INFO] [stdout]   | ------------------------ previous definition of the module `acknowledgement` here
[INFO] [stdout] 2 | pub mod acknowledgement;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^ `acknowledgement` redefined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `acknowledgement` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `billing_amount` is defined multiple times
[INFO] [stdout]  --> src/order_taking/domain/model/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod billing_amount;
[INFO] [stdout]   | ----------------------- previous definition of the module `billing_amount` here
[INFO] [stdout] 5 | pub mod billing_amount;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^ `billing_amount` redefined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `billing_amount` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `events` is defined multiple times
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub mod events;
[INFO] [stdout]    | --------------- previous definition of the module `events` here
[INFO] [stdout] 10 | pub mod events;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ `events` redefined here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `events` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `acknowledgement` is defined multiple times
[INFO] [stdout]  --> src/order_taking/domain/model/mod.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod acknowledgement;
[INFO] [stdout]   | ------------------------ previous definition of the module `acknowledgement` here
[INFO] [stdout] 2 | pub mod acknowledgement;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^ `acknowledgement` redefined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `acknowledgement` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `billing_amount` is defined multiple times
[INFO] [stdout]  --> src/order_taking/domain/model/mod.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod billing_amount;
[INFO] [stdout]   | ----------------------- previous definition of the module `billing_amount` here
[INFO] [stdout] 5 | pub mod billing_amount;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^ `billing_amount` redefined here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `billing_amount` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `events` is defined multiple times
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub mod events;
[INFO] [stdout]    | --------------- previous definition of the module `events` here
[INFO] [stdout] 10 | pub mod events;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ `events` redefined here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `events` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `ValidatedAddress` is defined multiple times
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub type ValidatedAddress = ();
[INFO] [stdout]    | ------------------------------- previous definition of the type `ValidatedAddress` here
[INFO] [stdout] ...
[INFO] [stdout] 31 | pub struct ValidatedAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ValidatedAddress` redefined here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValidatedAddress` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `ValidatedAddress` is defined multiple times
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub type ValidatedAddress = ();
[INFO] [stdout]    | ------------------------------- previous definition of the type `ValidatedAddress` here
[INFO] [stdout] ...
[INFO] [stdout] 31 | pub struct ValidatedAddress {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ValidatedAddress` redefined here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValidatedAddress` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: 1 positional argument in format string, but no arguments were given
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:72:39
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let error_msg = format!("Invalid: {:?}, product_code");
[INFO] [stdout]    |                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: 1 positional argument in format string, but no arguments were given
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:72:39
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let error_msg = format!("Invalid: {:?}, product_code");
[INFO] [stdout]    |                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `super::AddressValidationError`
[INFO] [stdout]  --> src/order_taking/domain/model/order.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Address, AddressValidationError, CheckAddressExists, CheckProductCodeExists, GetProductPrice,
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^ no `AddressValidationError` in `order_taking::domain::model`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum through its public re-export instead:
[INFO] [stdout]           crate::order_taking::AddressValidationError
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `super::AddressValidationError`
[INFO] [stdout]  --> src/order_taking/domain/model/order.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Address, AddressValidationError, CheckAddressExists, CheckProductCodeExists, GetProductPrice,
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^^ no `AddressValidationError` in `order_taking::domain::model`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum through its public re-export instead:
[INFO] [stdout]           crate::order_taking::AddressValidationError
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `super::PricingError`, `super::CreateOrderAcknowledgementLetter`, `super::SendOrderAcknowledgement`, `super::acknowledge_order`, `super::create_events`, `super::price_order`
[INFO] [stdout]  --> src/order_taking/domain/workflows/place_order.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     CreateOrderAcknowledgementLetter, PricingError, SendOrderAcknowledgement, acknowledge_order,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^ no `acknowledge_order` in `order_taking::domain::workflows`
[INFO] [stdout]   |     |                                 |             |
[INFO] [stdout]   |     |                                 |             no `SendOrderAcknowledgement` in `order_taking::domain::workflows`
[INFO] [stdout]   |     |                                 no `PricingError` in `order_taking::domain::workflows`
[INFO] [stdout]   |     no `CreateOrderAcknowledgementLetter` in `order_taking::domain::workflows`
[INFO] [stdout] 9 |     create_events, price_order,
[INFO] [stdout]   |     ^^^^^^^^^^^^^  ^^^^^^^^^^^ no `price_order` in `order_taking::domain::workflows`
[INFO] [stdout]   |     |
[INFO] [stdout]   |     no `create_events` in `order_taking::domain::workflows`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum through its public re-export instead:
[INFO] [stdout]           crate::order_taking::PricingError
[INFO] [stdout]   = help: consider importing this type alias through its public re-export instead:
[INFO] [stdout]           crate::order_taking::CreateOrderAcknowledgementLetter
[INFO] [stdout]   = help: consider importing this type alias through its public re-export instead:
[INFO] [stdout]           crate::order_taking::SendOrderAcknowledgement
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]   |
[INFO] [stdout] 9 -     create_events, price_order,
[INFO] [stdout] 9 +     create_events, place_order,
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `super::PricingError`, `super::CreateOrderAcknowledgementLetter`, `super::SendOrderAcknowledgement`, `super::acknowledge_order`, `super::create_events`, `super::price_order`
[INFO] [stdout]  --> src/order_taking/domain/workflows/place_order.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     CreateOrderAcknowledgementLetter, PricingError, SendOrderAcknowledgement, acknowledge_order,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^ no `acknowledge_order` in `order_taking::domain::workflows`
[INFO] [stdout]   |     |                                 |             |
[INFO] [stdout]   |     |                                 |             no `SendOrderAcknowledgement` in `order_taking::domain::workflows`
[INFO] [stdout]   |     |                                 no `PricingError` in `order_taking::domain::workflows`
[INFO] [stdout]   |     no `CreateOrderAcknowledgementLetter` in `order_taking::domain::workflows`
[INFO] [stdout] 9 |     create_events, price_order,
[INFO] [stdout]   |     ^^^^^^^^^^^^^  ^^^^^^^^^^^ no `price_order` in `order_taking::domain::workflows`
[INFO] [stdout]   |     |
[INFO] [stdout]   |     no `create_events` in `order_taking::domain::workflows`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing this enum through its public re-export instead:
[INFO] [stdout]           crate::order_taking::PricingError
[INFO] [stdout]   = help: consider importing this type alias through its public re-export instead:
[INFO] [stdout]           crate::order_taking::CreateOrderAcknowledgementLetter
[INFO] [stdout]   = help: consider importing this type alias through its public re-export instead:
[INFO] [stdout]           crate::order_taking::SendOrderAcknowledgement
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]   |
[INFO] [stdout] 9 -     create_events, price_order,
[INFO] [stdout] 9 +     create_events, place_order,
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Serialize` in this scope
[INFO] [stdout]  --> src/order_taking/presentation/dto/place_order_response.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Serialize)]
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Serialize` in this scope
[INFO] [stdout]  --> src/order_taking/presentation/dto/place_order_response.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Serialize)]
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `serde` in this scope
[INFO] [stdout]  --> src/order_taking/presentation/dto/place_order_response.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 |     #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `serde` is an attribute that can be used by the derive macros `Deserialize` and `Serialize`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Deserialize` in this scope
[INFO] [stdout]  --> src/order_taking/presentation/dto/unvalidated_order.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Deserialize)]
[INFO] [stdout]   |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `serde` in this scope
[INFO] [stdout]  --> src/order_taking/presentation/dto/place_order_response.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 |     #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `serde` is an attribute that can be used by the derive macros `Deserialize` and `Serialize`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Deserialize` in this scope
[INFO] [stdout]  --> src/order_taking/presentation/dto/unvalidated_order.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Deserialize)]
[INFO] [stdout]   |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Deserialize` in this scope
[INFO] [stdout]   --> src/order_taking/presentation/dto/unvalidated_order.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Deserialize` in this scope
[INFO] [stdout]   --> src/order_taking/presentation/dto/unvalidated_order.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Price` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/billing_amount.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn sum_prices(prices: Vec<Price>) -> Result<BillingAmount, String> {
[INFO] [stdout]    |                                   ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::Price;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `OrderLineId` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/order.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub id: OrderLineId,
[INFO] [stdout]    |             ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::OrderLineId;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `id` in this scope
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         id,
[INFO] [stdout]     |         ^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these functions
[INFO] [stdout]     |
[INFO] [stdout]   1 + use std::process::id;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use tokio::task::id;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `id` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |         id,
[INFO] [stdout]    |         ^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these functions
[INFO] [stdout]    |
[INFO] [stdout]  1 + use std::process::id;
[INFO] [stdout]    |
[INFO] [stdout]  1 + use tokio::task::id;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `product_code` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |           if product_code.str.starts_with("W") {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 | / pub fn to_product_code(
[INFO] [stdout] 77 | |     check_product_code_exists: CheckProductCodeExists,
[INFO] [stdout] 78 | |     product_code_str: &str,
[INFO] [stdout] 79 | | ) -> Result<ProductCode, String> {
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     check_product(check_product_code_exists, product_code)
[INFO] [stdout] 83 | | }
[INFO] [stdout]    | |_- similarly named function `to_product_code` defined here
[INFO] [stdout]    |
[INFO] [stdout] help: a function with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if to_product_code.str.starts_with("W") {
[INFO] [stdout]    |            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `order_lines` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         order_lines,
[INFO] [stdout]    |         ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `ProductCode` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |     product_code: &ProductCode,
[INFO] [stdout]    |                    ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::ProductCode;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `ProductCode` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         ProductCode::Widget(_) => {
[INFO] [stdout]    |         ^^^^^^^^^^^ use of undeclared type `ProductCode`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::ProductCode;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `ProductCode` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         ProductCode::Gizmo(_) => {
[INFO] [stdout]    |         ^^^^^^^^^^^ use of undeclared type `ProductCode`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::ProductCode;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `create_order_acknowledgement_letter` in this scope
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 create_order_acknowledgement_letter,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 37 -                 create_order_acknowledgement_letter,
[INFO] [stdout] 37 +                 create_acknowledgement_letter,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `send_order_acknowledgement` in this scope
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 send_order_acknowledgement,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 38 -                 send_order_acknowledgement,
[INFO] [stdout] 38 +                 send_acknowledgement,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `PricedOrderLine` is ambiguous
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:4:41
[INFO] [stdout]    |
[INFO] [stdout]  4 |     model::{BillingAmount, PricedOrder, PricedOrderLine, ValidatedOrder, to_priced_order_line},
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^ ambiguous name
[INFO] [stdout]    |
[INFO] [stdout]    = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `PricedOrderLine` could refer to the struct imported here
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use order::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `PricedOrderLine` to disambiguate
[INFO] [stdout] note: `PricedOrderLine` could also refer to the struct imported here
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use order_line::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `PricedOrderLine` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `PricedOrderLine` is ambiguous
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:32:27
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let lines: Result<Vec<PricedOrderLine>, String> = validated_order
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^ ambiguous name
[INFO] [stdout]    |
[INFO] [stdout]    = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `PricedOrderLine` could refer to the struct imported here
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use order::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `PricedOrderLine` to disambiguate
[INFO] [stdout] note: `PricedOrderLine` could also refer to the struct imported here
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use order_line::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `PricedOrderLine` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `impl Trait` in type aliases is unstable
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:28:65
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type SendOrderAcknowledgement = fn(OrderAcknowledgement) -> impl Future<Output = SendResult>;
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
[INFO] [stdout]    = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2026-06-16; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `impl Trait` in type aliases is unstable
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:37:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | ) -> impl Future<Output = Option<OrderAcknowledgementSent>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
[INFO] [stdout]    = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2026-06-16; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `impl Trait` in type aliases is unstable
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:88:31
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn(UnvalidatedAddress) -> impl Future<Output = Result<CheckedAddress, AddressValidationError>>;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
[INFO] [stdout]    = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2026-06-16; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `impl Trait` in type aliases is unstable
[INFO] [stdout]   --> src/order_taking/domain/model/order.rs:83:6
[INFO] [stdout]    |
[INFO] [stdout] 83 | ) -> impl Future<Output = Result<ValidatedOrder, ValidationError>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
[INFO] [stdout]    = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2026-06-16; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Price`
[INFO] [stdout]  --> src/order_taking/domain/model/acknowledgement.rs:1:50
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::order_taking::{EmailAddress, OrderId, Price, PricedOrder};
[INFO] [stdout]   |                                                  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]  --> src/order_taking/domain/model/address.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Price`
[INFO] [stdout]  --> src/order_taking/domain/model/events.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 |     BillingAmount, Price,
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Address` and `GetProductPrice`
[INFO] [stdout]  --> src/order_taking/domain/model/order.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Address, AddressValidationError, CheckAddressExists, CheckProductCodeExists, GetProductPrice,
[INFO] [stdout]   |     ^^^^^^^                                                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `product_code`
[INFO] [stdout]  --> src/order_taking/domain/model/order_line.rs:3:54
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::{CheckProductCodeExists, GetProductPrice, product_code};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `acknowledgement::*`
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use acknowledgement::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `billing_amount::*`
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use billing_amount::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dto::*`
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use dto::*;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `events::*`
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use events::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use order::*;
[INFO] [stdout]    |         ^^^^^^^^ the name `PricedOrderLine` in the type namespace is first re-exported here
[INFO] [stdout] 31 | pub use order_id::*;
[INFO] [stdout] 32 | pub use order_line::*;
[INFO] [stdout]    |         ------------- but the name `PricedOrderLine` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/order_taking/domain/utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/order_taking/domain/workflows/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use commands::*;
[INFO] [stdout]   |         ^^^^^^^^^^^ the name `PlaceOrder` in the type namespace is first re-exported here
[INFO] [stdout] 5 | pub use place_order::*;
[INFO] [stdout]   |         -------------- but the name `PlaceOrder` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `repositories::*`
[INFO] [stdout]  --> src/order_taking/infrastructure/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use repositories::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/order_taking/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use domain::*;
[INFO] [stdout]   |         ^^^^^^^^^ the name `dto` in the type namespace is first re-exported here
[INFO] [stdout] 6 | pub use infrastructure::*;
[INFO] [stdout] 7 | pub use presentation::*;
[INFO] [stdout]   |         --------------- but the name `dto` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0562]: `impl Trait` is not allowed in `fn` pointer return types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:28:65
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type SendOrderAcknowledgement = fn(OrderAcknowledgement) -> impl Future<Output = SendResult>;
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `impl Trait` is only allowed in arguments and return types of functions and methods
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0562]: `impl Trait` is not allowed in `fn` pointer return types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:37:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | ) -> impl Future<Output = Option<OrderAcknowledgementSent>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `impl Trait` is only allowed in arguments and return types of functions and methods
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0562]: `impl Trait` is not allowed in `fn` pointer return types
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:88:31
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn(UnvalidatedAddress) -> impl Future<Output = Result<CheckedAddress, AddressValidationError>>;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `impl Trait` is only allowed in arguments and return types of functions and methods
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0562]: `impl Trait` is not allowed in `fn` pointer return types
[INFO] [stdout]   --> src/order_taking/domain/model/order.rs:83:6
[INFO] [stdout]    |
[INFO] [stdout] 83 | ) -> impl Future<Output = Result<ValidatedOrder, ValidationError>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `impl Trait` is only allowed in arguments and return types of functions and methods
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Price` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/billing_amount.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn sum_prices(prices: Vec<Price>) -> Result<BillingAmount, String> {
[INFO] [stdout]    |                                   ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::Price;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `OrderLineId` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/order.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub id: OrderLineId,
[INFO] [stdout]    |             ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::OrderLineId;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `id` in this scope
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         id,
[INFO] [stdout]     |         ^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these functions
[INFO] [stdout]     |
[INFO] [stdout]   1 + use std::process::id;
[INFO] [stdout]     |
[INFO] [stdout]   1 + use tokio::task::id;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `id` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |         id,
[INFO] [stdout]    |         ^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these functions
[INFO] [stdout]    |
[INFO] [stdout]  1 + use std::process::id;
[INFO] [stdout]    |
[INFO] [stdout]  1 + use tokio::task::id;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `product_code` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |           if product_code.str.starts_with("W") {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 | / pub fn to_product_code(
[INFO] [stdout] 77 | |     check_product_code_exists: CheckProductCodeExists,
[INFO] [stdout] 78 | |     product_code_str: &str,
[INFO] [stdout] 79 | | ) -> Result<ProductCode, String> {
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     check_product(check_product_code_exists, product_code)
[INFO] [stdout] 83 | | }
[INFO] [stdout]    | |_- similarly named function `to_product_code` defined here
[INFO] [stdout]    |
[INFO] [stdout] help: a function with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if to_product_code.str.starts_with("W") {
[INFO] [stdout]    |            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `order_lines` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         order_lines,
[INFO] [stdout]    |         ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `ProductCode` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:46:20
[INFO] [stdout]    |
[INFO] [stdout] 46 |     product_code: &ProductCode,
[INFO] [stdout]    |                    ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::ProductCode;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `ProductCode` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         ProductCode::Widget(_) => {
[INFO] [stdout]    |         ^^^^^^^^^^^ use of undeclared type `ProductCode`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::ProductCode;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `ProductCode` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         ProductCode::Gizmo(_) => {
[INFO] [stdout]    |         ^^^^^^^^^^^ use of undeclared type `ProductCode`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum through its public re-export
[INFO] [stdout]    |
[INFO] [stdout]  1 + use crate::order_taking::ProductCode;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `create_order_acknowledgement_letter` in this scope
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 create_order_acknowledgement_letter,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 37 -                 create_order_acknowledgement_letter,
[INFO] [stdout] 37 +                 create_acknowledgement_letter,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `send_order_acknowledgement` in this scope
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |                 send_order_acknowledgement,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 38 -                 send_order_acknowledgement,
[INFO] [stdout] 38 +                 send_acknowledgement,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `PricedOrderLine` is ambiguous
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:4:41
[INFO] [stdout]    |
[INFO] [stdout]  4 |     model::{BillingAmount, PricedOrder, PricedOrderLine, ValidatedOrder, to_priced_order_line},
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^ ambiguous name
[INFO] [stdout]    |
[INFO] [stdout]    = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `PricedOrderLine` could refer to the struct imported here
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use order::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `PricedOrderLine` to disambiguate
[INFO] [stdout] note: `PricedOrderLine` could also refer to the struct imported here
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use order_line::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `PricedOrderLine` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0659]: `PricedOrderLine` is ambiguous
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:32:27
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let lines: Result<Vec<PricedOrderLine>, String> = validated_order
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^ ambiguous name
[INFO] [stdout]    |
[INFO] [stdout]    = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `PricedOrderLine` could refer to the struct imported here
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use order::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `PricedOrderLine` to disambiguate
[INFO] [stdout] note: `PricedOrderLine` could also refer to the struct imported here
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub use order_line::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `PricedOrderLine` to disambiguate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `impl Trait` in type aliases is unstable
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:28:65
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type SendOrderAcknowledgement = fn(OrderAcknowledgement) -> impl Future<Output = SendResult>;
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
[INFO] [stdout]    = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2026-06-16; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `impl Trait` in type aliases is unstable
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:37:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | ) -> impl Future<Output = Option<OrderAcknowledgementSent>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
[INFO] [stdout]    = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2026-06-16; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `impl Trait` in type aliases is unstable
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:88:31
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn(UnvalidatedAddress) -> impl Future<Output = Result<CheckedAddress, AddressValidationError>>;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
[INFO] [stdout]    = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2026-06-16; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: `impl Trait` in type aliases is unstable
[INFO] [stdout]   --> src/order_taking/domain/model/order.rs:83:6
[INFO] [stdout]    |
[INFO] [stdout] 83 | ) -> impl Future<Output = Result<ValidatedOrder, ValidationError>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
[INFO] [stdout]    = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2026-06-16; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Price`
[INFO] [stdout]  --> src/order_taking/domain/model/acknowledgement.rs:1:50
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::order_taking::{EmailAddress, OrderId, Price, PricedOrder};
[INFO] [stdout]   |                                                  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]  --> src/order_taking/domain/model/address.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Price`
[INFO] [stdout]  --> src/order_taking/domain/model/events.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 |     BillingAmount, Price,
[INFO] [stdout]   |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Address` and `GetProductPrice`
[INFO] [stdout]  --> src/order_taking/domain/model/order.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Address, AddressValidationError, CheckAddressExists, CheckProductCodeExists, GetProductPrice,
[INFO] [stdout]   |     ^^^^^^^                                                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `product_code`
[INFO] [stdout]  --> src/order_taking/domain/model/order_line.rs:3:54
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::{CheckProductCodeExists, GetProductPrice, product_code};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `acknowledgement::*`
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use acknowledgement::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `billing_amount::*`
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use billing_amount::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dto::*`
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use dto::*;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `events::*`
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub use events::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/order_taking/domain/model/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use order::*;
[INFO] [stdout]    |         ^^^^^^^^ the name `PricedOrderLine` in the type namespace is first re-exported here
[INFO] [stdout] 31 | pub use order_id::*;
[INFO] [stdout] 32 | pub use order_line::*;
[INFO] [stdout]    |         ------------- but the name `PricedOrderLine` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]  --> src/order_taking/domain/utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::future::Future;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/order_taking/domain/workflows/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use commands::*;
[INFO] [stdout]   |         ^^^^^^^^^^^ the name `PlaceOrder` in the type namespace is first re-exported here
[INFO] [stdout] 5 | pub use place_order::*;
[INFO] [stdout]   |         -------------- but the name `PlaceOrder` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `repositories::*`
[INFO] [stdout]  --> src/order_taking/infrastructure/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use repositories::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]  --> src/order_taking/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use domain::*;
[INFO] [stdout]   |         ^^^^^^^^^ the name `dto` in the type namespace is first re-exported here
[INFO] [stdout] 6 | pub use infrastructure::*;
[INFO] [stdout] 7 | pub use presentation::*;
[INFO] [stdout]   |         --------------- but the name `dto` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0562]: `impl Trait` is not allowed in `fn` pointer return types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:28:65
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub type SendOrderAcknowledgement = fn(OrderAcknowledgement) -> impl Future<Output = SendResult>;
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `impl Trait` is only allowed in arguments and return types of functions and methods
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0562]: `impl Trait` is not allowed in `fn` pointer return types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:37:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | ) -> impl Future<Output = Option<OrderAcknowledgementSent>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `impl Trait` is only allowed in arguments and return types of functions and methods
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0562]: `impl Trait` is not allowed in `fn` pointer return types
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:88:31
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn(UnvalidatedAddress) -> impl Future<Output = Result<CheckedAddress, AddressValidationError>>;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `impl Trait` is only allowed in arguments and return types of functions and methods
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0562]: `impl Trait` is not allowed in `fn` pointer return types
[INFO] [stdout]   --> src/order_taking/domain/model/order.rs:83:6
[INFO] [stdout]    |
[INFO] [stdout] 83 | ) -> impl Future<Output = Result<ValidatedOrder, ValidationError>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `impl Trait` is only allowed in arguments and return types of functions and methods
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | #[derive(Debug, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 31 | pub struct ValidatedAddress {
[INFO] [stdout]    |            ---------------- this is not defined in the current crate because tuples are always foreign
[INFO] [stdout]    |
[INFO] [stdout]    = note: impl doesn't have any local type before any uncovered type parameters
[INFO] [stdout]    = note: for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
[INFO] [stdout]    = note: define and implement a trait or new type instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | #[derive(Debug, Clone)]
[INFO] [stdout]    |                 ^^^^^
[INFO] [stdout] 31 | pub struct ValidatedAddress {
[INFO] [stdout]    |            ---------------- this is not defined in the current crate because tuples are always foreign
[INFO] [stdout]    |
[INFO] [stdout]    = note: impl doesn't have any local type before any uncovered type parameters
[INFO] [stdout]    = note: for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
[INFO] [stdout]    = note: define and implement a trait or new type instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | #[derive(Debug, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 31 | pub struct ValidatedAddress {
[INFO] [stdout]    |            ---------------- this is not defined in the current crate because tuples are always foreign
[INFO] [stdout]    |
[INFO] [stdout]    = note: impl doesn't have any local type before any uncovered type parameters
[INFO] [stdout]    = note: for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
[INFO] [stdout]    = note: define and implement a trait or new type instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | #[derive(Debug, Clone)]
[INFO] [stdout]    |                 ^^^^^
[INFO] [stdout] 31 | pub struct ValidatedAddress {
[INFO] [stdout]    |            ---------------- this is not defined in the current crate because tuples are always foreign
[INFO] [stdout]    |
[INFO] [stdout]    = note: impl doesn't have any local type before any uncovered type parameters
[INFO] [stdout]    = note: for more information see https://doc.rust-lang.org/reference/items/implementations.html#orphan-rules
[INFO] [stdout]    = note: define and implement a trait or new type instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:43:54
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let letter = create_order_acknowledgement_letter(&priced_order);
[INFO] [stdout]    |                  ----------------------------------- ^^^^^^^^^^^^^ expected `PricedOrder`, found `&PricedOrder`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 43 -     let letter = create_order_acknowledgement_letter(&priced_order);
[INFO] [stdout] 43 +     let letter = create_order_acknowledgement_letter(priced_order);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:43:54
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let letter = create_order_acknowledgement_letter(&priced_order);
[INFO] [stdout]    |                  ----------------------------------- ^^^^^^^^^^^^^ expected `PricedOrder`, found `&PricedOrder`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 43 -     let letter = create_order_acknowledgement_letter(&priced_order);
[INFO] [stdout] 43 +     let letter = create_order_acknowledgement_letter(priced_order);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:47:24
[INFO] [stdout]    |
[INFO] [stdout] 47 |         email_address: priced_order.customer_info.email_address,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `String`, found `EmailAddress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:47:24
[INFO] [stdout]    |
[INFO] [stdout] 47 |         email_address: priced_order.customer_info.email_address,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `String`, found `EmailAddress`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:51:38
[INFO] [stdout]    |
[INFO] [stdout] 51 |     match send_order_acknowledgement(&acknowledgement) {
[INFO] [stdout]    |           -------------------------- ^^^^^^^^^^^^^^^^ expected `OrderAcknowledgement`, found `&OrderAcknowledgement`
[INFO] [stdout]    |           |
[INFO] [stdout]    |           arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 51 -     match send_order_acknowledgement(&acknowledgement) {
[INFO] [stdout] 51 +     match send_order_acknowledgement(acknowledgement) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:51:38
[INFO] [stdout]    |
[INFO] [stdout] 51 |     match send_order_acknowledgement(&acknowledgement) {
[INFO] [stdout]    |           -------------------------- ^^^^^^^^^^^^^^^^ expected `OrderAcknowledgement`, found `&OrderAcknowledgement`
[INFO] [stdout]    |           |
[INFO] [stdout]    |           arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 51 -     match send_order_acknowledgement(&acknowledgement) {
[INFO] [stdout] 51 +     match send_order_acknowledgement(acknowledgement) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Option<domain::model::acknowledgement::OrderAcknowledgement>` is not a future
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 |   ) -> impl Future<Output = Option<OrderAcknowledgementSent>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Option<domain::model::acknowledgement::OrderAcknowledgement>` is not a future
[INFO] [stdout] ...
[INFO] [stdout] 51 | /     match send_order_acknowledgement(&acknowledgement) {
[INFO] [stdout] 52 | |         SendResult::Sent => Some(acknowledgement),
[INFO] [stdout] 53 | |         SendResult::NotSent => None,
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____- return type was inferred to be `Option<domain::model::acknowledgement::OrderAcknowledgement>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Future` is not implemented for `Option<domain::model::acknowledgement::OrderAcknowledgement>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Option<domain::model::acknowledgement::OrderAcknowledgement>` is not a future
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 |   ) -> impl Future<Output = Option<OrderAcknowledgementSent>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Option<domain::model::acknowledgement::OrderAcknowledgement>` is not a future
[INFO] [stdout] ...
[INFO] [stdout] 51 | /     match send_order_acknowledgement(&acknowledgement) {
[INFO] [stdout] 52 | |         SendResult::Sent => Some(acknowledgement),
[INFO] [stdout] 53 | |         SendResult::NotSent => None,
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____- return type was inferred to be `Option<domain::model::acknowledgement::OrderAcknowledgement>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Future` is not implemented for `Option<domain::model::acknowledgement::OrderAcknowledgement>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Option<domain::model::acknowledgement::OrderAcknowledgement>` is not a future
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 |   ) -> impl Future<Output = Option<OrderAcknowledgementSent>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Option<domain::model::acknowledgement::OrderAcknowledgement>` is not a future
[INFO] [stdout] ...
[INFO] [stdout] 51 | /     match send_order_acknowledgement(&acknowledgement) {
[INFO] [stdout] 52 | |         SendResult::Sent => Some(acknowledgement),
[INFO] [stdout] 53 | |         SendResult::NotSent => None,
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____- return type was inferred to be `Option<domain::model::acknowledgement::OrderAcknowledgement>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Future` is not implemented for `Option<domain::model::acknowledgement::OrderAcknowledgement>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0071]: expected struct, variant or union type, found `()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:75:19
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let address = ValidatedAddress {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^ not a struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Option<domain::model::acknowledgement::OrderAcknowledgement>` is not a future
[INFO] [stdout]   --> src/order_taking/domain/model/acknowledgement.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 |   ) -> impl Future<Output = Option<OrderAcknowledgementSent>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Option<domain::model::acknowledgement::OrderAcknowledgement>` is not a future
[INFO] [stdout] ...
[INFO] [stdout] 51 | /     match send_order_acknowledgement(&acknowledgement) {
[INFO] [stdout] 52 | |         SendResult::Sent => Some(acknowledgement),
[INFO] [stdout] 53 | |         SendResult::NotSent => None,
[INFO] [stdout] 54 | |     }
[INFO] [stdout]    | |_____- return type was inferred to be `Option<domain::model::acknowledgement::OrderAcknowledgement>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Future` is not implemented for `Option<domain::model::acknowledgement::OrderAcknowledgement>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order.rs:90:36
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let order_id = OrderId::create(unvalidated_order);
[INFO] [stdout]    |                    --------------- ^^^^^^^^^^^^^^^^^ expected `String`, found `UnvalidatedOrder`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/order_taking/domain/model/order_id.rs:5:12
[INFO] [stdout]    |
[INFO] [stdout]  5 |     pub fn create(id: String) -> Self {
[INFO] [stdout]    |            ^^^^^^ ----------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0071]: expected struct, variant or union type, found `()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:75:19
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let address = ValidatedAddress {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^ not a struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:102:42
[INFO] [stdout]     |
[INFO] [stdout] 102 |         to_address(check_address_exists, unvalidated_order.billing_address);
[INFO] [stdout]     |         ----------                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `UnvalidatedAddress`, found `()`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/order_taking/domain/model/address.rs:62:14
[INFO] [stdout]     |
[INFO] [stdout]  62 | pub async fn to_address(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout]  63 |     check_address_exists: CheckAddressExists,
[INFO] [stdout]  64 |     unvalidated_address: UnvalidatedAddress,
[INFO] [stdout]     |     ---------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order.rs:90:36
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let order_id = OrderId::create(unvalidated_order);
[INFO] [stdout]    |                    --------------- ^^^^^^^^^^^^^^^^^ expected `String`, found `UnvalidatedOrder`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/order_taking/domain/model/order_id.rs:5:12
[INFO] [stdout]    |
[INFO] [stdout]  5 |     pub fn create(id: String) -> Self {
[INFO] [stdout]    |            ^^^^^^ ----------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>` cannot be built from an iterator over elements of type `()`
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:108:10
[INFO] [stdout]     |
[INFO] [stdout] 108 |         .collect();
[INFO] [stdout]     |          ^^^^^^^ value of type `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>` cannot be built from `std::iter::Iterator<Item=()>`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `FromIterator<()>` is not implemented for `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>`
[INFO] [stdout]       but trait `FromIterator<Result<order_line::ValidatedOrderLine, errors::ValidationError>>` is implemented for it
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:3935:0
[INFO] [stdout]     = help: for that trait implementation, expected `Result<order_line::ValidatedOrderLine, errors::ValidationError>`, found `()`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:107:10
[INFO] [stdout]     |
[INFO] [stdout] 104 |       let validated_lines: Vec<Result<ValidatedOrderLine, ValidationError>> = unvalidated_order
[INFO] [stdout]     |  _____________________________________________________________________________-
[INFO] [stdout] 105 | |         .order_lines
[INFO] [stdout]     | |____________________- this expression has type `Vec<UnvalidatedOrderLine>`
[INFO] [stdout] 106 |           .into_iter()
[INFO] [stdout]     |            ----------- `Iterator::Item` is `UnvalidatedOrderLine` here
[INFO] [stdout] 107 |           .map(|line| to_validated_orderline(check_product_code_exists, line))
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Iterator::Item` changed to `()` here
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/iter/traits/iterator.rs:2077:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:102:42
[INFO] [stdout]     |
[INFO] [stdout] 102 |         to_address(check_address_exists, unvalidated_order.billing_address);
[INFO] [stdout]     |         ----------                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `UnvalidatedAddress`, found `()`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/order_taking/domain/model/address.rs:62:14
[INFO] [stdout]     |
[INFO] [stdout]  62 | pub async fn to_address(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout]  63 |     check_address_exists: CheckAddressExists,
[INFO] [stdout]  64 |     unvalidated_address: UnvalidatedAddress,
[INFO] [stdout]     |     ---------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try`
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:110:27
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let validated_lines = validated_lines?;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the nightly-only, unstable trait `Try` is not implemented for `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>` cannot be built from an iterator over elements of type `()`
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:108:10
[INFO] [stdout]     |
[INFO] [stdout] 108 |         .collect();
[INFO] [stdout]     |          ^^^^^^^ value of type `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>` cannot be built from `std::iter::Iterator<Item=()>`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `FromIterator<()>` is not implemented for `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>`
[INFO] [stdout]       but trait `FromIterator<Result<order_line::ValidatedOrderLine, errors::ValidationError>>` is implemented for it
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:3935:0
[INFO] [stdout]     = help: for that trait implementation, expected `Result<order_line::ValidatedOrderLine, errors::ValidationError>`, found `()`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:107:10
[INFO] [stdout]     |
[INFO] [stdout] 104 |       let validated_lines: Vec<Result<ValidatedOrderLine, ValidationError>> = unvalidated_order
[INFO] [stdout]     |  _____________________________________________________________________________-
[INFO] [stdout] 105 | |         .order_lines
[INFO] [stdout]     | |____________________- this expression has type `Vec<UnvalidatedOrderLine>`
[INFO] [stdout] 106 |           .into_iter()
[INFO] [stdout]     |            ----------- `Iterator::Item` is `UnvalidatedOrderLine` here
[INFO] [stdout] 107 |           .map(|line| to_validated_orderline(check_product_code_exists, line))
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Iterator::Item` changed to `()` here
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/iter/traits/iterator.rs:2077:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try`
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:110:27
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let validated_lines = validated_lines?;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the nightly-only, unstable trait `Try` is not implemented for `Vec<Result<order_line::ValidatedOrderLine, errors::ValidationError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:116:27
[INFO] [stdout]     |
[INFO] [stdout] 116 |         shipping_address: validated_shipping_adderss,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found future
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:117:26
[INFO] [stdout]     |
[INFO] [stdout] 117 |         billing_address: validated_billing_address,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found future
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:116:27
[INFO] [stdout]     |
[INFO] [stdout] 116 |         shipping_address: validated_shipping_adderss,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found future
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/order_taking/domain/model/order.rs:117:26
[INFO] [stdout]     |
[INFO] [stdout] 117 |         billing_address: validated_billing_address,
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found future
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try`
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:44:31
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let validated_order = validate_order(unvalidated_order)?;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `impl Future<Output = Result<order::ValidatedOrder, errors::ValidationError>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the nightly-only, unstable trait `Try` is not implemented for `impl Future<Output = Result<order::ValidatedOrder, errors::ValidationError>>`
[INFO] [stdout] note: this implements `Future` and its output type supports `?`, but the future cannot be awaited in a synchronous function
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:44:64
[INFO] [stdout]    |
[INFO] [stdout] 30 |     move |unvalidated_order: UnvalidatedOrder| -> Result<Vec<PlaceOrderEvent>, String> {
[INFO] [stdout]    |     ---------------------------------------------------------------------------------- this is not `async`
[INFO] [stdout] ...
[INFO] [stdout] 44 |         let validated_order = validate_order(unvalidated_order)?;
[INFO] [stdout]    |                                                                ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try`
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:44:31
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let validated_order = validate_order(unvalidated_order)?;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `impl Future<Output = Result<order::ValidatedOrder, errors::ValidationError>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the nightly-only, unstable trait `Try` is not implemented for `impl Future<Output = Result<order::ValidatedOrder, errors::ValidationError>>`
[INFO] [stdout] note: this implements `Future` and its output type supports `?`, but the future cannot be awaited in a synchronous function
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:44:64
[INFO] [stdout]    |
[INFO] [stdout] 30 |     move |unvalidated_order: UnvalidatedOrder| -> Result<Vec<PlaceOrderEvent>, String> {
[INFO] [stdout]    |     ---------------------------------------------------------------------------------- this is not `async`
[INFO] [stdout] ...
[INFO] [stdout] 44 |         let validated_order = validate_order(unvalidated_order)?;
[INFO] [stdout]    |                                                                ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `String`
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:45:56
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let priced_order = price_order(validated_order)?;
[INFO] [stdout]    |                            ----------------------------^ the trait `From<errors::PricingError>` is not implemented for `String`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            this can't be annotated with `?` because it has type `Result<_, errors::PricingError>`
[INFO] [stdout]    |
[INFO] [stdout] note: `errors::PricingError` needs to implement `Into<String>`
[INFO] [stdout]   --> src/order_taking/domain/errors.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum PricingError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: `String` implements trait `From<T>`:
[INFO] [stdout]              From<&String>
[INFO] [stdout]              From<&mut str>
[INFO] [stdout]              From<&str>
[INFO] [stdout]              From<Box<str>>
[INFO] [stdout]              From<Cow<'_, str>>
[INFO] [stdout]              From<bytestring::ByteString>
[INFO] [stdout]              From<char>
[INFO] [stdout]              From<url::Url>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try`
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:46:38
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let acknowledgement_option = acknowledge_order(priced_order)?;
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `impl Future<Output = Option<domain::model::acknowledgement::OrderAcknowledgementSent>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the nightly-only, unstable trait `Try` is not implemented for `impl Future<Output = Option<domain::model::acknowledgement::OrderAcknowledgementSent>>`
[INFO] [stdout] note: this implements `Future` and its output type supports `?`, but the future cannot be awaited in a synchronous function
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:46:69
[INFO] [stdout]    |
[INFO] [stdout] 30 |     move |unvalidated_order: UnvalidatedOrder| -> Result<Vec<PlaceOrderEvent>, String> {
[INFO] [stdout]    |     ---------------------------------------------------------------------------------- this is not `async`
[INFO] [stdout] ...
[INFO] [stdout] 46 |         let acknowledgement_option = acknowledge_order(priced_order)?;
[INFO] [stdout]    |                                                                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `String`
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:45:56
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let priced_order = price_order(validated_order)?;
[INFO] [stdout]    |                            ----------------------------^ the trait `From<errors::PricingError>` is not implemented for `String`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            this can't be annotated with `?` because it has type `Result<_, errors::PricingError>`
[INFO] [stdout]    |
[INFO] [stdout] note: `errors::PricingError` needs to implement `Into<String>`
[INFO] [stdout]   --> src/order_taking/domain/errors.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum PricingError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: `String` implements trait `From<T>`:
[INFO] [stdout]              From<&String>
[INFO] [stdout]              From<&mut str>
[INFO] [stdout]              From<&str>
[INFO] [stdout]              From<Box<str>>
[INFO] [stdout]              From<Cow<'_, str>>
[INFO] [stdout]              From<bytestring::ByteString>
[INFO] [stdout]              From<char>
[INFO] [stdout]              From<url::Url>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@place_order.rs:30:5}` to return `Result<Vec<PlaceOrderEvents>, PlaceOrderError>`, but it returns `Result<Vec<PlaceOrderEvent>, String>`
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:30:51
[INFO] [stdout]    |
[INFO] [stdout] 29 | ) -> impl Fn(UnvalidatedOrder) -> Result<Vec<PlaceOrderEvents>, PlaceOrderError> {
[INFO] [stdout]    |      --------------------------------------------------------------------------- closure used here
[INFO] [stdout] 30 |     move |unvalidated_order: UnvalidatedOrder| -> Result<Vec<PlaceOrderEvent>, String> {
[INFO] [stdout]    |     ----------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |                                             |
[INFO] [stdout]    |     |                                             expected `Result<Vec<PlaceOrderEvents>, ...>`, found `Result<Vec<PlaceOrderEvent>, String>`
[INFO] [stdout]    |     this closure
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Result<Vec<PlaceOrderEvents>, errors::PlaceOrderError>`
[INFO] [stdout]               found enum `Result<Vec<domain::model::events::PlaceOrderEvent>, String>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try`
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:46:38
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let acknowledgement_option = acknowledge_order(priced_order)?;
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `impl Future<Output = Option<domain::model::acknowledgement::OrderAcknowledgementSent>>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the nightly-only, unstable trait `Try` is not implemented for `impl Future<Output = Option<domain::model::acknowledgement::OrderAcknowledgementSent>>`
[INFO] [stdout] note: this implements `Future` and its output type supports `?`, but the future cannot be awaited in a synchronous function
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:46:69
[INFO] [stdout]    |
[INFO] [stdout] 30 |     move |unvalidated_order: UnvalidatedOrder| -> Result<Vec<PlaceOrderEvent>, String> {
[INFO] [stdout]    |     ---------------------------------------------------------------------------------- this is not `async`
[INFO] [stdout] ...
[INFO] [stdout] 46 |         let acknowledgement_option = acknowledge_order(priced_order)?;
[INFO] [stdout]    |                                                                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@place_order.rs:30:5}` to return `Result<Vec<PlaceOrderEvents>, PlaceOrderError>`, but it returns `Result<Vec<PlaceOrderEvent>, String>`
[INFO] [stdout]   --> src/order_taking/domain/workflows/place_order.rs:30:51
[INFO] [stdout]    |
[INFO] [stdout] 29 | ) -> impl Fn(UnvalidatedOrder) -> Result<Vec<PlaceOrderEvents>, PlaceOrderError> {
[INFO] [stdout]    |      --------------------------------------------------------------------------- closure used here
[INFO] [stdout] 30 |     move |unvalidated_order: UnvalidatedOrder| -> Result<Vec<PlaceOrderEvent>, String> {
[INFO] [stdout]    |     ----------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |                                             |
[INFO] [stdout]    |     |                                             expected `Result<Vec<PlaceOrderEvents>, ...>`, found `Result<Vec<PlaceOrderEvent>, String>`
[INFO] [stdout]    |     this closure
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Result<Vec<PlaceOrderEvents>, errors::PlaceOrderError>`
[INFO] [stdout]               found enum `Result<Vec<domain::model::events::PlaceOrderEvent>, String>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/errors.rs:92:37
[INFO] [stdout]    |
[INFO] [stdout] 92 |         PlaceOrderError::Validation(err)
[INFO] [stdout]    |         --------------------------- ^^^ expected `Vec<ValidationError>`, found `ValidationError`
[INFO] [stdout]    |         |
[INFO] [stdout]    |         arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<errors::ValidationError>`
[INFO] [stdout]                 found enum `errors::ValidationError`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/order_taking/domain/errors.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     Validation(Vec<ValidationError>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/errors.rs:92:37
[INFO] [stdout]    |
[INFO] [stdout] 92 |         PlaceOrderError::Validation(err)
[INFO] [stdout]    |         --------------------------- ^^^ expected `Vec<ValidationError>`, found `ValidationError`
[INFO] [stdout]    |         |
[INFO] [stdout]    |         arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<errors::ValidationError>`
[INFO] [stdout]                 found enum `errors::ValidationError`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/order_taking/domain/errors.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     Validation(Vec<ValidationError>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Vec<errors::ValidationError>` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> src/order_taking/domain/errors.rs:109:81
[INFO] [stdout]     |
[INFO] [stdout] 109 |             PlaceOrderError::Validation(e) => write!(f, "Validation error: {}", e),
[INFO] [stdout]     |                                                                            --   ^ `Vec<errors::ValidationError>` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                                            |
[INFO] [stdout]     |                                                                            required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `std::fmt::Display` is not implemented for `Vec<errors::ValidationError>`
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout]     = note: required for `&Vec<errors::ValidationError>` to implement `std::fmt::Display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Vec<errors::ValidationError>` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> src/order_taking/domain/errors.rs:109:81
[INFO] [stdout]     |
[INFO] [stdout] 109 |             PlaceOrderError::Validation(e) => write!(f, "Validation error: {}", e),
[INFO] [stdout]     |                                                                            --   ^ `Vec<errors::ValidationError>` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                                            |
[INFO] [stdout]     |                                                                            required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `std::fmt::Display` is not implemented for `Vec<errors::ValidationError>`
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout]     = note: required for `&Vec<errors::ValidationError>` to implement `std::fmt::Display`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `address_line1` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub address_line1: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `address_line1` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub address_line1: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `address_line2` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub address_line2: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `address_line2` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub address_line2: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `address_line3` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub address_line3: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `address_line3` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub address_line3: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `address_line4` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub address_line4: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `address_line4` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub address_line4: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `city` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub city: String,
[INFO] [stdout]    |         ^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `city` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub city: String,
[INFO] [stdout]    |         ^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `zip_code` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub zip_code: ZipCode,
[INFO] [stdout]    |         ^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `zip_code` on type `&()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub zip_code: ZipCode,
[INFO] [stdout]    |         ^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0071]: expected struct, variant or union type, found `()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | #[derive(Debug, Clone)]
[INFO] [stdout]    |                 ^ not a struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0071]: expected struct, variant or union type, found `()`
[INFO] [stdout]   --> src/order_taking/domain/model/address.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | #[derive(Debug, Clone)]
[INFO] [stdout]    |                 ^ not a struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `PlacedOrderEvent` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/events.rs:40:21
[INFO] [stdout]    |
[INFO] [stdout] 40 |         events.push(PlacedOrderEvent::AcknowledgementSent(ack_event));
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^ use of undeclared type `PlacedOrderEvent`
[INFO] [stdout]    |
[INFO] [stdout] help: an enum with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 40 -         events.push(PlacedOrderEvent::AcknowledgementSent(ack_event));
[INFO] [stdout] 40 +         events.push(PlaceOrderEvent::AcknowledgementSent(ack_event));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/events.rs:56:30
[INFO] [stdout]    |
[INFO] [stdout] 56 |             billing_address: placed_order.billing_address.clone(),
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Address`, found `()`
[INFO] [stdout]    |
[INFO] [stdout] help: try wrapping the expression in `order_taking::domain::model::address::Address::ValidatedAddress`
[INFO] [stdout]    |
[INFO] [stdout] 56 |             billing_address: order_taking::domain::model::address::Address::ValidatedAddress(placed_order.billing_address.clone()),
[INFO] [stdout]    |                              ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `PlacedOrderEvent` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/events.rs:40:21
[INFO] [stdout]    |
[INFO] [stdout] 40 |         events.push(PlacedOrderEvent::AcknowledgementSent(ack_event));
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^ use of undeclared type `PlacedOrderEvent`
[INFO] [stdout]    |
[INFO] [stdout] help: an enum with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 40 -         events.push(PlacedOrderEvent::AcknowledgementSent(ack_event));
[INFO] [stdout] 40 +         events.push(PlaceOrderEvent::AcknowledgementSent(ack_event));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/events.rs:56:30
[INFO] [stdout]    |
[INFO] [stdout] 56 |             billing_address: placed_order.billing_address.clone(),
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Address`, found `()`
[INFO] [stdout]    |
[INFO] [stdout] help: try wrapping the expression in `order_taking::domain::model::address::Address::ValidatedAddress`
[INFO] [stdout]    |
[INFO] [stdout] 56 |             billing_address: order_taking::domain::model::address::Address::ValidatedAddress(placed_order.billing_address.clone()),
[INFO] [stdout]    |                              ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:50:45
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let order_line_id = OrderLineId::create(orderline.id);
[INFO] [stdout]    |                         ------------------- ^^^^^^^^^^^^ expected `String`, found `OrderLineId`
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn create(value: String) -> Self {
[INFO] [stdout]    |            ^^^^^^ -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         product_code,
[INFO] [stdout]    |         ^^^^^^^^^^^^ expected `ProductCode`, found `bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:50:45
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let order_line_id = OrderLineId::create(orderline.id);
[INFO] [stdout]    |                         ------------------- ^^^^^^^^^^^^ expected `String`, found `OrderLineId`
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn create(value: String) -> Self {
[INFO] [stdout]    |            ^^^^^^ -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | ) {
[INFO] [stdout]    |  - help: try adding a return type: `-> order_line::ValidatedOrderLine`
[INFO] [stdout] ...
[INFO] [stdout] 62 |     validated_order_line
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ expected `()`, found `ValidatedOrderLine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `quantity` on type `order_line::ValidatedOrderLine`
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:69:45
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let quantity = get_quantity_value(&line.quantity);
[INFO] [stdout]    |                                             ^^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `order_id`, `product_code`, `order_quantity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_quantity_value` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:69:20
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let quantity = get_quantity_value(&line.quantity);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         product_code,
[INFO] [stdout]    |         ^^^^^^^^^^^^ expected `ProductCode`, found `bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:71:35
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let price = get_product_price(&line.product_code);
[INFO] [stdout]    |                 ----------------- ^^^^^^^^^^^^^^^^^^ expected `ProductCode`, found `&ProductCode`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 71 -     let price = get_product_price(&line.product_code);
[INFO] [stdout] 71 +     let price = get_product_price(line.product_code);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `quantity` on type `order_line::ValidatedOrderLine`
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:79:24
[INFO] [stdout]    |
[INFO] [stdout] 79 |         quantity: line.quantity,
[INFO] [stdout]    |                        ^^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `order_id`, `product_code`, `order_quantity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | ) {
[INFO] [stdout]    |  - help: try adding a return type: `-> order_line::ValidatedOrderLine`
[INFO] [stdout] ...
[INFO] [stdout] 62 |     validated_order_line
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ expected `()`, found `ValidatedOrderLine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `quantity` on type `order_line::ValidatedOrderLine`
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:69:45
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let quantity = get_quantity_value(&line.quantity);
[INFO] [stdout]    |                                             ^^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `order_id`, `product_code`, `order_quantity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `get_quantity_value` in this scope
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:69:20
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let quantity = get_quantity_value(&line.quantity);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:71:35
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let price = get_product_price(&line.product_code);
[INFO] [stdout]    |                 ----------------- ^^^^^^^^^^^^^^^^^^ expected `ProductCode`, found `&ProductCode`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] help: consider removing the borrow
[INFO] [stdout]    |
[INFO] [stdout] 71 -     let price = get_product_price(&line.product_code);
[INFO] [stdout] 71 +     let price = get_product_price(line.product_code);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `quantity` on type `order_line::ValidatedOrderLine`
[INFO] [stdout]   --> src/order_taking/domain/model/order_line.rs:79:24
[INFO] [stdout]    |
[INFO] [stdout] 79 |         quantity: line.quantity,
[INFO] [stdout]    |                        ^^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `id`, `order_id`, `product_code`, `order_quantity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:46:36
[INFO] [stdout]    |
[INFO] [stdout] 46 |               Ok(ProductCode::Widget(WidgetCode::create(
[INFO] [stdout]    |  ________________-------------------_^
[INFO] [stdout]    | |                |
[INFO] [stdout]    | |                arguments to this enum variant are incorrect
[INFO] [stdout] 47 | |                 product_code_str.to_string(),
[INFO] [stdout] 48 | |             )))
[INFO] [stdout]    | |_____________^ expected `WidgetCode`, found `Result<WidgetCode, String>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `WidgetCode`
[INFO] [stdout]                 found enum `Result<WidgetCode, String>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     Widget(WidgetCode),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] help: use the `?` operator to extract the `Result<WidgetCode, String>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]    |
[INFO] [stdout] 48 |             )?))
[INFO] [stdout]    |              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:50:35
[INFO] [stdout]    |
[INFO] [stdout] 50 |               Ok(ProductCode::Gizmo(GizmoCode::create(
[INFO] [stdout]    |  ________________------------------_^
[INFO] [stdout]    | |                |
[INFO] [stdout]    | |                arguments to this enum variant are incorrect
[INFO] [stdout] 51 | |                 product_code_str.to_string(),
[INFO] [stdout] 52 | |             )))
[INFO] [stdout]    | |_____________^ expected `GizmoCode`, found `Result<GizmoCode, String>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `GizmoCode`
[INFO] [stdout]                 found enum `Result<GizmoCode, String>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     Gizmo(GizmoCode),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] help: use the `?` operator to extract the `Result<GizmoCode, String>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]    |
[INFO] [stdout] 52 |             )?))
[INFO] [stdout]    |              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:46:36
[INFO] [stdout]    |
[INFO] [stdout] 46 |               Ok(ProductCode::Widget(WidgetCode::create(
[INFO] [stdout]    |  ________________-------------------_^
[INFO] [stdout]    | |                |
[INFO] [stdout]    | |                arguments to this enum variant are incorrect
[INFO] [stdout] 47 | |                 product_code_str.to_string(),
[INFO] [stdout] 48 | |             )))
[INFO] [stdout]    | |_____________^ expected `WidgetCode`, found `Result<WidgetCode, String>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `WidgetCode`
[INFO] [stdout]                 found enum `Result<WidgetCode, String>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     Widget(WidgetCode),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] help: use the `?` operator to extract the `Result<WidgetCode, String>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]    |
[INFO] [stdout] 48 |             )?))
[INFO] [stdout]    |              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:50:35
[INFO] [stdout]    |
[INFO] [stdout] 50 |               Ok(ProductCode::Gizmo(GizmoCode::create(
[INFO] [stdout]    |  ________________------------------_^
[INFO] [stdout]    | |                |
[INFO] [stdout]    | |                arguments to this enum variant are incorrect
[INFO] [stdout] 51 | |                 product_code_str.to_string(),
[INFO] [stdout] 52 | |             )))
[INFO] [stdout]    | |_____________^ expected `GizmoCode`, found `Result<GizmoCode, String>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `GizmoCode`
[INFO] [stdout]                 found enum `Result<GizmoCode, String>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/order_taking/domain/model/product_code.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     Gizmo(GizmoCode),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] help: use the `?` operator to extract the `Result<GizmoCode, String>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]    |
[INFO] [stdout] 52 |             )?))
[INFO] [stdout]    |              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<order::PricedOrderLine>` cannot be built from an iterator over elements of type `order_line::PricedOrderLine`
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 |         .collect();
[INFO] [stdout]    |          ^^^^^^^ value of type `Vec<order::PricedOrderLine>` cannot be built from `std::iter::Iterator<Item=order_line::PricedOrderLine>`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `FromIterator<order_line::PricedOrderLine>` is not implemented for `Vec<order::PricedOrderLine>`
[INFO] [stdout]       but trait `FromIterator<order::PricedOrderLine>` is implemented for it
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:3935:0
[INFO] [stdout]    = help: for that trait implementation, expected `order::PricedOrderLine`, found `order_line::PricedOrderLine`
[INFO] [stdout]    = note: required for `Result<Vec<order::PricedOrderLine>, String>` to implement `FromIterator<Result<order_line::PricedOrderLine, String>>`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/iter/traits/iterator.rs:2077:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `errors::PricingError`
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:38:22
[INFO] [stdout]    |
[INFO] [stdout] 31 | ) -> Result<PricedOrder, PricingError> {
[INFO] [stdout]    |      --------------------------------- expected `errors::PricingError` because of this
[INFO] [stdout] ...
[INFO] [stdout] 38 |     let lines = lines?;
[INFO] [stdout]    |                 -----^ the trait `From<String>` is not implemented for `errors::PricingError`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this can't be annotated with `?` because it has type `Result<_, String>`
[INFO] [stdout]    |
[INFO] [stdout] note: `errors::PricingError` needs to implement `From<String>`
[INFO] [stdout]   --> src/order_taking/domain/errors.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum PricingError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<order::PricedOrderLine>` cannot be built from an iterator over elements of type `order_line::PricedOrderLine`
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:36:10
[INFO] [stdout]    |
[INFO] [stdout] 36 |         .collect();
[INFO] [stdout]    |          ^^^^^^^ value of type `Vec<order::PricedOrderLine>` cannot be built from `std::iter::Iterator<Item=order_line::PricedOrderLine>`
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `FromIterator<order_line::PricedOrderLine>` is not implemented for `Vec<order::PricedOrderLine>`
[INFO] [stdout]       but trait `FromIterator<order::PricedOrderLine>` is implemented for it
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/alloc/src/vec/mod.rs:3935:0
[INFO] [stdout]    = help: for that trait implementation, expected `order::PricedOrderLine`, found `order_line::PricedOrderLine`
[INFO] [stdout]    = note: required for `Result<Vec<order::PricedOrderLine>, String>` to implement `FromIterator<Result<order_line::PricedOrderLine, String>>`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/iter/traits/iterator.rs:2077:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         amount_to_bill,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ expected `BillingAmount`, found `Result<BillingAmount, String>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `domain::model::billing_amount::BillingAmount`
[INFO] [stdout]                 found enum `Result<domain::model::billing_amount::BillingAmount, String>`
[INFO] [stdout] help: use the `?` operator to extract the `Result<domain::model::billing_amount::BillingAmount, String>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]    |
[INFO] [stdout] 49 |         amount_to_bill: amount_to_bill?,
[INFO] [stdout]    |                       +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `errors::PricingError`
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:38:22
[INFO] [stdout]    |
[INFO] [stdout] 31 | ) -> Result<PricedOrder, PricingError> {
[INFO] [stdout]    |      --------------------------------- expected `errors::PricingError` because of this
[INFO] [stdout] ...
[INFO] [stdout] 38 |     let lines = lines?;
[INFO] [stdout]    |                 -----^ the trait `From<String>` is not implemented for `errors::PricingError`
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this can't be annotated with `?` because it has type `Result<_, String>`
[INFO] [stdout]    |
[INFO] [stdout] note: `errors::PricingError` needs to implement `From<String>`
[INFO] [stdout]   --> src/order_taking/domain/errors.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum PricingError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f64: Eq` is not satisfied
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stdout]    |                                         -- in this derive macro expansion
[INFO] [stdout] 21 | pub struct KilogramQuantity(f64);
[INFO] [stdout]    |                             ^^^ the trait `Eq` is not implemented for `f64`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `Eq`:
[INFO] [stdout]              i128
[INFO] [stdout]              i16
[INFO] [stdout]              i32
[INFO] [stdout]              i64
[INFO] [stdout]              i8
[INFO] [stdout]              isize
[INFO] [stdout]              u128
[INFO] [stdout]              u16
[INFO] [stdout]            and 4 others
[INFO] [stdout] note: required by a bound in `std::cmp::AssertParamIsEq`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cmp.rs:380:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/product_price.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         amount_to_bill,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ expected `BillingAmount`, found `Result<BillingAmount, String>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `domain::model::billing_amount::BillingAmount`
[INFO] [stdout]                 found enum `Result<domain::model::billing_amount::BillingAmount, String>`
[INFO] [stdout] help: use the `?` operator to extract the `Result<domain::model::billing_amount::BillingAmount, String>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]    |
[INFO] [stdout] 49 |         amount_to_bill: amount_to_bill?,
[INFO] [stdout]    |                       +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f64: Eq` is not satisfied
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Debug, Clone, Copy, PartialEq, Eq)]
[INFO] [stdout]    |                                         -- in this derive macro expansion
[INFO] [stdout] 21 | pub struct KilogramQuantity(f64);
[INFO] [stdout]    |                             ^^^ the trait `Eq` is not implemented for `f64`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `Eq`:
[INFO] [stdout]              i128
[INFO] [stdout]              i16
[INFO] [stdout]              i32
[INFO] [stdout]              i64
[INFO] [stdout]              i8
[INFO] [stdout]              isize
[INFO] [stdout]              u128
[INFO] [stdout]              u16
[INFO] [stdout]            and 4 others
[INFO] [stdout] note: required by a bound in `std::cmp::AssertParamIsEq`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/cmp.rs:380:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 |         if quantity < 1 {
[INFO] [stdout]    |            --------   ^ expected `f64`, found integer
[INFO] [stdout]    |            |
[INFO] [stdout]    |            expected because this is `f64`
[INFO] [stdout]    |
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 25 |         if quantity < 1.0 {
[INFO] [stdout]    |                        ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |         } else if quantity > 1000 {
[INFO] [stdout]    |                   --------   ^^^^ expected `f64`, found integer
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   expected because this is `f64`
[INFO] [stdout]    |
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 27 |         } else if quantity > 1000.0 {
[INFO] [stdout]    |                                  ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 |         if quantity < 1 {
[INFO] [stdout]    |            --------   ^ expected `f64`, found integer
[INFO] [stdout]    |            |
[INFO] [stdout]    |            expected because this is `f64`
[INFO] [stdout]    |
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 25 |         if quantity < 1.0 {
[INFO] [stdout]    |                        ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |         } else if quantity > 1000 {
[INFO] [stdout]    |                   --------   ^^^^ expected `f64`, found integer
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   expected because this is `f64`
[INFO] [stdout]    |
[INFO] [stdout] help: use a float literal
[INFO] [stdout]    |
[INFO] [stdout] 27 |         } else if quantity > 1000.0 {
[INFO] [stdout]    |                                  ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:64:63
[INFO] [stdout]    |
[INFO] [stdout] 64 |             let kiroguram_quantity = KilogramQuantity::create(quantity);
[INFO] [stdout]    |                                      ------------------------ ^^^^^^^^ expected `f64`, found `&str`
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn create(quantity: f64) -> Result<KilogramQuantity, String> {
[INFO] [stdout]    |            ^^^^^^ -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:65:40
[INFO] [stdout]    |
[INFO] [stdout] 65 |             Ok(OrderQuantity::Kilogram(kiroguram_quantity))
[INFO] [stdout]    |                ----------------------- ^^^^^^^^^^^^^^^^^^ expected `KilogramQuantity`, found `Result<KilogramQuantity, String>`
[INFO] [stdout]    |                |
[INFO] [stdout]    |                arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `KilogramQuantity`
[INFO] [stdout]                 found enum `Result<KilogramQuantity, String>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Kilogram(KilogramQuantity),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] help: use the `?` operator to extract the `Result<KilogramQuantity, String>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]    |
[INFO] [stdout] 65 |             Ok(OrderQuantity::Kilogram(kiroguram_quantity?))
[INFO] [stdout]    |                                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:64:63
[INFO] [stdout]    |
[INFO] [stdout] 64 |             let kiroguram_quantity = KilogramQuantity::create(quantity);
[INFO] [stdout]    |                                      ------------------------ ^^^^^^^^ expected `f64`, found `&str`
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn create(quantity: f64) -> Result<KilogramQuantity, String> {
[INFO] [stdout]    |            ^^^^^^ -------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:65:40
[INFO] [stdout]    |
[INFO] [stdout] 65 |             Ok(OrderQuantity::Kilogram(kiroguram_quantity))
[INFO] [stdout]    |                ----------------------- ^^^^^^^^^^^^^^^^^^ expected `KilogramQuantity`, found `Result<KilogramQuantity, String>`
[INFO] [stdout]    |                |
[INFO] [stdout]    |                arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `KilogramQuantity`
[INFO] [stdout]                 found enum `Result<KilogramQuantity, String>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/order_taking/domain/model/quantities.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Kilogram(KilogramQuantity),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] help: use the `?` operator to extract the `Result<KilogramQuantity, String>` value, propagating a `Result::Err` value to the caller
[INFO] [stdout]    |
[INFO] [stdout] 65 |             Ok(OrderQuantity::Kilogram(kiroguram_quantity?))
[INFO] [stdout]    |                                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> src/order_taking/infrastructure/services/pricing_service.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const GET_PRODUCT_PRICE: GetProductPrice =
[INFO] [stdout]   |                              --------------- expected because of the type of the constant
[INFO] [stdout] 5 |     |_product_code: &ProductCode| Price::create(10.0).unwrap();
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found closure
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected fn pointer `fn(product_code::ProductCode) -> product_price::Price`
[INFO] [stdout]                 found closure `{closure@src/order_taking/infrastructure/services/pricing_service.rs:5:5: 5:34}`
[INFO] [stdout]   = note: closure has signature: `for<'a> fn(&'a product_code::ProductCode) -> product_price::Price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> src/order_taking/infrastructure/services/pricing_service.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const GET_PRODUCT_PRICE: GetProductPrice =
[INFO] [stdout]   |                              --------------- expected because of the type of the constant
[INFO] [stdout] 5 |     |_product_code: &ProductCode| Price::create(10.0).unwrap();
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found closure
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected fn pointer `fn(product_code::ProductCode) -> product_price::Price`
[INFO] [stdout]                 found closure `{closure@src/order_taking/infrastructure/services/pricing_service.rs:5:5: 5:34}`
[INFO] [stdout]   = note: closure has signature: `for<'a> fn(&'a product_code::ProductCode) -> product_price::Price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0071, E0117, E0271, E0277, E0308, E0425, E0428, E0432, E0433...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0071`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0071, E0117, E0271, E0277, E0308, E0425, E0428, E0432, E0433...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0071`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-ddd-demo` (lib) due to 80 previous errors; 14 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `rust-ddd-demo` (lib test) due to 80 previous errors; 14 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9140b923ef80af5e846bb43fb54a144e0eb687e4c26264e9b0d2ade555484992", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9140b923ef80af5e846bb43fb54a144e0eb687e4c26264e9b0d2ade555484992", kill_on_drop: false }`
[INFO] [stdout] 9140b923ef80af5e846bb43fb54a144e0eb687e4c26264e9b0d2ade555484992
